Bundling of remotely-ordered grocery items

ABSTRACT

The present disclosure provides various methods and embodiments for bundling remotely ordered grocery items. When a customer places a bundle request, the system determines whether a customer-defined number of the bundle items will be available at the customer-selected fulfillment time. If the system determines the customer-defined items will not be available at the fulfillment time, the bundle order is rejected and the user is alerted. Various other methods to assure complete fulfillment of customer orders are provided herein.

PRIORITY

The present application is a divisional of and claims priority toNon-Provisional patent application Ser. No. 15/599,729, filed May 19,2017, having the same Title and Inventorship, the disclosure of which ishereby incorporated by reference in its entirety.

FIELD OF THE INVENTION

The present disclosure generally relates to the fulfillment of groceriesordered remotely via an e-commerce platform and, more particularly, tosystems and methods that provide for customer-specific bundling ofremotely ordered groceries.

BACKGROUND

In recent years, many grocery chains have begun offering customers theoption to order groceries over the Internet. The customer simply logsonto an e-commerce Internet portal and selects the items they wish topurchase. Once orders are placed, the customer selects a fulfillmenttime in which they will pick the groceries up at the merchant location.In-store personnel then pick the various items from the shelves asufficient amount of time before the scheduled fulfillment time. Whenthe customer arrives as scheduled, the groceries are then delivered totheir vehicle.

The conventional remote ordering process is fraught with frustrations.For example, often times the customer will arrive to find that one ormore of the desired grocery items were not available or were replacedwith less-than desired or unwanted substitution items. Often times, thecustomer may have been depending on certain items being fulfilled formeals or other events later that same day. As a result, the customer isleft scrambling to make last minute meal changes or make additionalstore visits in order to assemble all the desired items.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 illustrates a communications network for bundling remotelyordered grocery items, according to certain illustrative embodiments ofthe present disclosure;

FIGS. 2 and 3 are flow charts of methods for bundling groceries remotelyordered by a customer over a communications network, according toalternative illustrative methods of the present disclosure; and

FIG. 4 is a flow chart of a method to fulfill grocery items remotelyordered by a customer, according to certain illustrative methods of thepresent disclosure.

Embodiments of the present disclosure and their advantages are bestunderstood by referring to the detailed description that follows. Itshould be appreciated that like reference numerals are used to identifylike elements illustrated in one or more of the figures, whereinshowings therein are for purposes of illustrating embodiments of thepresent disclosure and not for purposes of limiting the same.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

The detailed description set forth below, in connection with theappended drawings, is intended as a description of variousconfigurations and is not intended to represent the only configurationsin which the concepts described herein may be practiced. The detaileddescription includes specific details for the purpose of providing athorough understanding of the various concepts. However, it will beapparent to those ordinarily skilled in the art having the benefit ofthis disclosure that these concepts may be practiced without thesespecific details. In some instances, well-known structures andcomponents are shown in block diagrammatical form in order to avoidobscuring such concepts.

The present disclosure provides systems, methods, and non-transitorycomputer readable media for bundling remotely-ordered grocery items forfulfillment at a merchant location. A bundle, as defined herein, refersto a grouping of two or more grocery items in which a user-definednumber of the grocery items must be fulfilled together at the same time.Grocery items, as defined herein, may be any variety of items such as,for example, food, animal goods, electronics, home goods, personal careitems, clothing, etc. Thus, the merchant locations described herein mayrelate to a variety of merchant providers, such as, for example,grocers, electronic stores, distribution facilities, restaurants, cafes,etc. Therefore, although the present disclosure will focus on fooditems, the illustrative embodiments and methods described herein may beapplied to a variety of other items of which a customer may desire tobundle.

In a first generalized method of the present disclosure, processingcircuitry of a merchant location or server acquires a list of groceryitems from a customer, whereby two or more of the grocery items havebeen categorized by the customer as a bundle. The grocery items may havebeen provided over a network to the merchant processing circuitry by acustomer via an online e-commerce platform. Along with the bundle items,a fulfillment time associated with the bundle is also acquired. An orderdatabase communicably coupled to the processing circuitry thendetermines whether each grocery item in the bundle is available at thefulfillment time. When ordering in certain illustrative methods, thecustomer specifies a defined number of items which must be included inthe bundle. The defined number of items may be all the bundle items,less than all the bundle items, some minimum number of the bundle items,etc. This defined number of items may also be a set number of items orspecific brands, categories, etc. of items. Thus, the user is providedthe option of specifying, within a bundle order, that certain items maybe omitted or substituted. If the processing circuitry determines thedefined number of the grocery items in the bundle will not be availableat the fulfillment time, the bundle is rejected. Then, before thefulfillment time, the system alerts the customer the bundle has beenrejected because the customer-defined number of grocery items will notbe available at the fulfillment time. Accordingly, the customer willhave notice well before the fulfillment time that the bundle items willnot be available, thus giving the customer sufficient time to makealternate plans.

In a second generalized method of the present disclosure, merchantlocation or server processing circuitry again acquires a bundle requestof grocery items from a customer via some remote e-commerce platform.The order database queries the store inventory to determine when theitems in the bundle will be available to be fulfilled. Once determined,the processing circuitry communicates the fulfillment time to thecustomer over a network. Thus, in this illustrative method, thefulfillment time is determined by the availability of the bundle itemsat the desired merchant location. Thus, the customer can then make plans(e.g., meal plans) based upon inventory at his or her favorite localmerchant, instead of being forced to make alternate plans or travel toother merchant locations.

In a third generalized method of the present disclosure, merchantlocation or server processing circuitry acquires a grocery itemfulfillment time selected by a customer via a user device. The systemthen causes the user device to display to the customer only thosegrocery items that will be available at the fulfillment time. The userthen selects from those items displayed the grocery items he or sherequests at the selected fulfillment time. The server or merchantprocessing circuitry then receives the grocery request and fulfills itat the appointed time.

FIG. 1 illustrates a communications network for bundling remotelyordered grocery items, according to certain illustrative embodiments ofthe present disclosure. Communications network 20 may support operationon multiple carriers (e.g., waveform signals of different frequenciesfor wireless/wired communications). As an example, communicationsnetwork 20 may be a multi-carrier LTE network capable of efficientlyallocating network resources. Communications network 20 is one exampleof a network to which various aspects of the disclosure apply.

In the illustrated example, communications network 20 includes a server22 which contains various processing circuitry/computing devices,databases, modules, etc., to facilitate bundling and fulfillment ofgrocery orders. Server 22 includes an order database 24, a registrationdatabase 26, and a geo-positioning module 28. Order database 24 iscommunicably coupled to inventory databases at merchant locations 36,46and/or stores data relating to inventory at the one or more merchantlocations 36,46 available for sale, customers, customer orders, deliveryaddresses, etc. The inventory data accessible by order database 24 mayinclude present and future inventory scheduled to arrive to the merchantlocation via, for example, Just-in-Time inventory schedules, as well hashistorical demand trends for various inventory items. Registrationdatabase 26 stores user registration data required to transact businesson communications network 20.

Geo-positioning module 28 may receive and/or process user locationinformation so that orders may be delivered to user locations ordelivered curb-side when the user arrives at the merchant location topick up the items, in certain illustrative embodiments. When a customerplaces an order, geo-positioning module 28 may automatically determinethe location of the customer and recommend one or more merchantlocations to fulfill the order. For example, if the fulfillment methodis delivery, geo-positioning module may analyze the bundle items (e.g.,frozen items, yogurt, non-perishable items) and determine one or moremerchant locations in close vicinity or miles away which can fulfill thebundle order via delivery means. In doing so, geo-positioning module 28may consider the location, traffic patterns, weather conditions, etc.,surrounding the candidate merchant locations, to thereby calculate thetime it will take to deliver the bundle via air craft or automobile andthen, based on the specific bundle items, determines which merchantlocations are best suited to fulfill the order. Alternatively, if thefulfillment method is pickup, geo-positioning module 28 may determinethe closest merchant location and suggest the recommendation to the user(e.g., if the user does not specify a merchant location via usercomputer 32).

Still referencing FIG. 1, when a user desires to place a remote groceryorder via communications network 20, user device/computer 32 may be usedto access server 22 via an internet connection or other communicationsnetwork 34. User computer may display an e-commerce application in whichthe user can select bundle items, desired merchant locations,fulfillment times, etc. via a suitable graphics interface. User computer32 may take various forms such as, for example, a mobile device, laptopor other network-adapted computing device. User computer 32 may belocation-aware, for example, by including circuitry and/or software toenable user computer 32 to determine its own location and communicatethat location to server 22. For example, user computer 32 may includecircuitry and/or software that enables it to be in communication with ageo-positioning system and geo-positioning module 28, or other suchsystem that enables the communications network 20 to determine thelocation of user computer 32.

One or more merchant store locations 36,46 are communicably coupled toserver 22. Merchant locations 36,46 may be, for example, a grocerystore, retail clothing store, distribution center, or any other merchantlocation whereby inventory is available for customer fulfillment.Although not shown, merchant locations 36,46 include one or morecomputing devices which communicate with server 22 to facilitatefulfillment of customer orders. The data available to such computingdevices may be, for example, present and future inventory and pricinginformation for that respective merchant location, Just-in-Time deliveryschedules, historical demand trends for inventory items, etc.

When placing the order, the customer may specify the delivery address orthe delivery address may be automatically associated with the customeraccount. In some illustrative methods, communications network 20 maydetermine which of merchant locations 36,46 should fill the order.Communications network 20 may provide for different order types, forexample, groceries, flowers, liquor, catering, etc. and differentfulfillment methods, for example, delivery or pick up. Further, incertain illustrative embodiments, communications network 20 via computer32 determines and displays to the customer a set of availablefulfillment windows or times that correspond to different combinationsof order, service types, and merchant store locations. The fulfillmentwindows are time windows on a date when the bundle order can bedelivered or picked up, which are selected by the customer.Alternatively, as described herein, the user may also select afulfillment time. Nevertheless, the customer's bundle order is stored inthe order database 24 of server 22, whereby bundle orders are accessibleby computing devices located at merchant locations 36,46 or,alternatively, server 22 may communicate the bundle orders to computingdevices at merchant locations 36,46.

In certain other illustrative embodiments, server 22 and merchantlocations 36,46 are in a common geographic area, although not required.Consequently, order database 24 and registration database 26 of server22 may contain data that is unique to that geographic area in terms ofcustomer identification, goods and services available for sale. However,in those embodiments in which merchant locations 36,46 are distributioncenters, for example, merchant locations 36,46 may be located anywhere,so long as bundle orders can be delivered timely (e.g., via automobileor aircrafts such as drones). Order database 24 may contain datarelating to inventory items of the various merchant locations 36,46,customers, customer orders, customer addresses, etc. Registrationdatabase 26 contains member names, passwords and other informationrelating to the registration of users necessary to transact business oncommunications network 20.

In a generalized method of the present disclosure, a customer usingcomputer 32 establishes a network connection via the internet 34 withserver 22 and places a grocery bundle order according to the methodsdescribed herein. To place the order in one example, the user may accessa e-commerce mobile application (via computer 32) which facilitiesbundle orders whereby the user may select two or grocery items they wishto bundle together, along with a desired fulfillment time, merchantlocation, and fulfillment method. For example, a customer may select thefulfillment method to be delivery or curb-side pickup.

The bundle request data is then communicated to server 22, where orderdatabase 26 determines the availability of each item in the bundle atone or more merchant locations 36,46 and fulfillment time. To make thisdetermination, order database 26 or other processing circuitry of server22 may query the inventory database of merchant locations 36,46 or mayrely on data resident in order database 26 (which may be updated inreal-time to reflect current and/or future inventory of merchantlocations 36,46). Upon the query, server 22 receives data relating topresent and future inventory and arrival times of merchant inventory, sothat a determination can be made whether the bundle items will beavailable at the future fulfillment time.

If order database 26 determines a defined number of the grocery items inthe bundle will not be available at the fulfillment time, order database24 will reject the bundle order. In certain illustrative methods, thedefined number of grocery items is defined by the customer when thebundle order is placed. For example, when the customer selects thebundle items via user computer 32, the customer may also select theitems that must be included in the bundle order (i.e., the definednumber). For example, the defined number may be 3 items in a 5 itembundle. In such a case, the bundle will be fulfilled as long as thedefined 3 items are available. If the defined 3 items are not available,the bundle order is rejected and, therefore, is not communicated to thecustomer-selected or suggested merchant location 36,36 for fulfillment.Note also that the defined number of bundle items may be all items inthe bundle. In such cases, the bundle order will not be fulfilled unlessall items in the bundle are available at the fulfillment time.Thereafter, server 22 communicates over Internet 34 to user computer 32to alert the customer the bundle has been rejected because the definednumber of grocery items will not be available at the fulfillment time.The alert may take various forms such as, for example, a text message,email, chime, audible voice, vibration or flashing light.

If, however, server 22 determines all the required bundle items will beavailable at the fulfillment time, the bundle order is communicated tomerchant locations 36,46, whereby the orders are placed. At thecustomer-selected fulfillment time, the orders are fulfilled. In certainmethods, the orders are fulfilled via curb-side delivery whereby thecustomer arrives to pick up the bundle at the fulfillment time. In otherillustrative methods, the bundle orders are fulfilled via delivery to acustomer-defined location (e.g., via automobile, drones, etc.) at thefulfillment time.

In an alternative generalized method of the present disclosure, thecustomer may place a bundle order over communications network 20 arepreviously discussed. The bundle order is then acquired by server 22over Internet 34. In this method, however, server 22 queries orderdatabase 24 to determine if the customer-defined number of the bundleitems will be available at a merchant location 36,46. Note, as in allmethods described herein, if the fulfillment method is pickup, thecustomer-selected merchant store is typically the fulfillment location.However, if the fulfillment method is delivery, server 22 may query allmerchant locations 36,46 within suitable distance to fulfill the order.For example, certain bundle items may be assembled from one merchantlocation, while other bundle items are assembled from another merchantlocation, and then assembled as a single bundle ready for fulfillment(such example bundle assembly methods are especially useful with the useof drones traveling to and fro between merchant locations).Nevertheless, after server 22 determines the fulfillment times in whichthe bundle items will be available, those fulfillment times arecommunicated to user computer 32. The customer may then select whichpickup or delivery time and/or location is acceptable via computer 32.Thereafter, the bundle items are fulfilled accordingly.

In certain other illustrative embodiments, the customer is allowed toselect a bundle rejection cutoff time when placing a bundle order. Here,communications network 20 via customer computer 32 allows the user toselect a cutoff time by which the customer must be alerted the bundleorder will not fulfilled. For example, the bundle rejection cutoff timeand date may be a few hours or a day before the selected fulfillmenttime.

The various components of communications network 20 may take a varietyof forms in which to achieve the methods described herein. For example,one or more of user computer 32, merchant locations 36,46 and server 22may include transceivers, memory, processors, user interfaces,databases, etc., which may be in direct or indirect communication witheach other. The transceivers may include a modem subsystem and a radiofrequency (“RF”) unit and be configured to communicate bi-directionallywith other devices or network elements. The memory of various elementsmay include a cache memory (e.g., a cache memory of the processor),random access memory (“RAM”), magnetoresistive RAM (“MRAM”), read-onlymemory (“ROM”), programmable read-only memory (“PROM”), erasableprogrammable read only memory (“EPROM”), electrically erasableprogrammable read only memory (“EEPROM”), flash memory, solid statememory device, hard disk drives, other forms of volatile andnon-volatile memory, or a combination of different types of memory. Inan embodiment, the memory of various network elements may include anon-transitory computer-readable medium having one or more hardwareprocessors coupled thereto to achieve any of the methods describedherein.

The memory of various network elements may store instructions that, whenexecuted by a processor, cause the processor to perform the operationsdescribed herein in connection with embodiments of the presentdisclosure. Instructions may also be referred to as code. The terms“instructions” and “code” may include any type of computer-readablestatement(s). For example, the terms “instructions” and “code” may referto one or more programs, routines, sub-routines, functions, procedures,etc. “Instructions” and “code” may include a single computer-readablestatement or many computer-readable statements.

The processors may include a central processing unit (“CPU”), a digitalsignal processor (“DSP”), an application-specific integrated circuit(“ASIC”), a controller, a field programmable gate array (“FPGA”) device,another hardware device, a firmware device. Etc. Further, the userinterface (on user computer 32, e.g.) may be used to display one or moregrocery items, bundle categorizations, fulfillment times, alert types,elements of information, and any other application data according toembodiments of the present disclosure. The user interface may alsoinclude one or more lights (e.g., LEDs) separate from a touchscreen, avibration generator, a speaker, a microphone, input for a mouse, inputfor a keyboard, etc. useful for providing feedback to a user as well asreceiving further input therefrom when placing bundle orders orotherwise.

Where applicable, various embodiments provided by the present disclosuremay be implemented using hardware, software, or combinations of hardwareand software. Also, where applicable, the various hardware componentsand/or software components set forth herein may be combined intocomposite components comprising software, hardware, and/or both withoutdeparting from the scope of the present disclosure. Where applicable,the various hardware components and/or software components set forthherein may be separated into sub-components comprising software,hardware, or both without departing from the scope of the presentdisclosure. In addition, where applicable, it is contemplated thatsoftware components may be implemented as hardware components andvice-versa.

Software, in accordance with the present disclosure, such as programcode and/or data, may be stored on one or more computer readablemediums. It is also contemplated that software identified herein may beimplemented using one or more general purpose or specific purposecomputers and/or computer systems, networked and/or otherwise. Whereapplicable, the ordering of various steps or blocks described herein maybe changed, combined into composite steps, and/or separated intosub-steps to provide features described herein.

In view of the foregoing, FIG. 2 is a flow chart of a method 200 forbundling groceries remotely ordered by a customer over a communicationsnetwork, according to certain illustrative methods of the presentdisclosure. With reference to FIGS. 1 and 2, at block 202, server 22acquires a list of grocery items from a customer, whereby two or more ofthe grocery items have been categorized by the customer as a bundle. Aspreviously stated, the grocery items may be food, clothing, electronics,household goods, etc. For example, the customer may specify the bundleorder as a meal bundle, whereby each grocery items will be included inthe meal later that day or week. To begin method 200, a customer, viauser computer 32, may access an e-commerce website or mobile applicationvia a graphical user interface (“GUI”) located on user computer 32. Thee-commerce website displays a list of inventory items located at one ormore merchant locations and provides the user with the option ofselecting two or more of the grocery items as a bundle to be fulfilledtogether at the same fulfillment time. The user is also allowed toselect a fulfillment time or time windows, as well as a delivery method.In this light, at block 204, server 22 also receives thecustomer-selected fulfillment time and fulfillment method associatedwith the bundle order.

At block 206, server 22 determines whether the selected merchantlocation has the customer-defined number of grocery items in the bundleavailable at the fulfillment time. In certain illustrative methods, themerchant location may be selected by the user or may be selected bycommunications network 20 based upon, for example, the location of auser identified using geo-positioning module 28. Nevertheless, todetermine what inventory is available and at what fulfillment times,server 22 communicates with order database 24 and merchant locations36,46 to query their local inventory database systems. At block 208, inthe event server 22 determines that the customer-defined number ofgrocery items in the bundle will not be available at the fulfillmenttime, server 22 rejects the bundle order. As previously described, theuser may, for example, indicate how many grocery items must be includedin the bundle (i.e., the “defined number”) when the order is placed viauser computer 32. For example, the define number could be 3 items:hamburger buns, ground beef, and mayonnaise. Thus, in this example, ifthe buns, ground beef and mayonnaise are not available in the inventoryat the selected fulfillment time, then server 22 rejects the bundleorder.

At block 210, server 22 then alerts the customer/user over internet 34that the bundle has been rejected because the defined number of groceryitems will not be available at the fulfillment time. The user is alertedbefore the fulfillment time in order to give the user time to makealternate plans. In certain illustrative methods, the user may selectthe desired alert time when the order is placed, as some time periodbefore the fulfillment time (also referred to herein as a “bundlerejection cutoff time”). The alert may come in the form of a text,email, audible alert on a mobile phone, or some indicator on thecustomer's e-commerce account.

In certain other illustrative methods, in the event the bundle items arenot available at the customer-selected fulfillment time, server 22queries order database 24 to determine when the bundle item would beavailable at one or more merchant locations 36,46. For example, perhapsthe buns and ground beef are available, but the mayonnaise does notarrive in inventory until some later time. As previously described,order database 24 has access to present and future inventory data anddelivery times and, thus, server 22 is able to determine when all theitems will be available for fulfillment (also referred to as “secondfulfillment time”). This second fulfillment time is then communicated tothe customer over internet 34 and to user computer 32, whereby thecustomer is then able to accept or reject the second fulfillment time.If accepted, server 22 fulfills the bundle order at the secondfulfillment times.

The fulfillment methods and times may vary in the illustrative methodsdescribed herein. The fulfillment methods may be, for example, pickup ordelivery. The delivery methods may be via automobile or an aircraft,such as a drone. The fulfillment times, of course, would then be thepickup or deliver time associated with the bundle order.

In certain other illustrative methods, at block 206 above, server 22 mayquery order database 24 in a variety of ways in order to determinewhether each grocery item in the bundle order is present in themerchant's inventory. For example, when placing the bundle order viauser computer 32, the user can specify certain brands of grocery bundleitems required to be included in the bundle order. For example, acertain brand of cheese may be selected. Alternatively, the user mayselect a specific food category. Here, the user may select hotdogs,soda, or yogurt as a food category that must be included in the bundle.In response, server 22 queries the merchant locations 36,46 to determineif they have those customer-specified brands or categories to beincluded in the bundle order. Thereafter, server 22 then determineswhether the bundle order is rejected or fulfilled, as described above.

In yet other illustrative methods, at block 206 above, the customer mayselect preferred and substitute items for certain bundle items. Forexample, in the case of hotdogs being included in the bundle order, theuser may select a “preferred” hotdog brand and a “substitution” hotdogbrand. If server 22 determines the preferred brand item is not availablein the inventory of merchant locations 36,46, the bundle order may stillbe fulfilled as long as the substitution item is available.

In other illustrative methods, when placing orders, the customer mayinclude both bundle and non-bundle items in his or her order. Forexample, the customer may select certain items as a meal bundle thatmust be included together, along with other unrelated items which do nothave to be bundled together. Therefore, server 22 will only fulfill thebundle order if all (or the defined number of) bundle items areavailable in inventory. At the same time, the non-bundle orders will befulfilled regardless of whether the bundle items are available or not.Thus, in certain cases, only the non-bundle items will be fulfilledwhile the bundle order is rejected because one or more of the bundleitems were not available.

FIG. 3 is a flow chart of an alternative method for bundling groceryitems remotely ordered by a customer, according to certain illustrativemethods of the present disclosure. With reference to FIGS. 1 and 3, atblock 302, server 22 acquires a list of grocery items from a customer,whereby two or more of the grocery items have been categorized by thecustomer as a bundle. As previously stated, the grocery items may befood, clothing, electronics, household goods, etc. To begin method 300,a customer, via user computer 32, accesses an e-commerce website ormobile application via a GUI, whereby they are allowed to select from avariety of inventory items at merchant locations 36,46, and bundledesired items as described herein. Unlike method 200, in method 300 thecustomer does not select a fulfillment time. Instead, after the userselects the bundle items, they are communicated to server 22 overinternet 34, where server 22 determines the fulfillment time for thebundle items at merchant locations 36,46 based upon their respectiveinventories, at block 304. In certain illustrative methods, the merchantlocations may be selected by the customer, while in other methods themerchants locations are selected by server 22 based upon thegeo-position of the customer determined using geo-positioning module 28.Thereafter, at block 306, server 22 communicates the fulfillment time touser computer 32 over internet 34. Therefore, in this illustrativemethod, the inventory schedules of merchant locations 36,46 determinethe fulfillment time of the bundle orders.

As previously described herein, in certain illustrative methods the usermay select preferred and substitute bundle items when placing theirorder on user computer 32. With regard to method 300, when server 22receives the bundle request data, the merchant locations 36,46 arequeried to determine inventory availability and server 22 determines afirst fulfillment time associated with the preferred grocery items inthe bundle. Alternatively, server 22 may also determine a fulfillmenttime associated with the substitute grocery items, which may or may notbe the same of the fulfillment time associated with the preferredgrocery items. In yet another illustration, server 22 determines afulfillment time associated with the combination of the preferred andsubstitute grocery items, which may or may not be the same as thefulfillment times associated with either preferred or substitution itemsseparately. One or all the different fulfillment times may then becommunicated to user computer 32 and displayed accordingly at block 306,whereby the customer is able to select a desired fulfillment time andmerchant location based upon his or her convenience.

Also at block 306, in yet other examples, the fulfillment timescommunicated to the customer may be different fulfillment times for thesame merchant location. Alternatively, server 22 may communicatedifferent fulfillment times for different merchant locations.

FIG. 4 is a flow chart of a method 400 to fulfill grocery items remotelyordered by a customer, according to certain illustrative methods of thepresent disclosure. At block 402, a fulfillment time selected by acustomer via user device 32 is acquired by server 22. Here, again, thecustomer selects the fulfillment time using an e-commerce application orother suitable platform as described herein. At block 404, server 22queries the inventories of merchant locations 36,46, to determine whichinventory items will be available at the selected fulfillment time.Then, server 22 communicates that inventory data to user computer 32which only displays those grocery items which will be available at theselected fulfillment time. Thus, the user is only presented with theavailable inventory items and is thereby guaranteed to receive all hisor her selected items at the fulfillment time. To achieve this, server22 may query the databases of merchant locations 36,46 and theirassociated Just-in-Time delivery schedules in order to forecast whichinventory items will be available at the fulfillment time. This forecastanalysis may take into account one or more of real-time inventory data,historical demand for various items, fulfillment method speeds,anticipated weather patterns, etc. in order to determine which groceryitems will be available at the selected time.

For example, in order to forecast the availability of items at thefulfillment time, communications network 20 may consider the historicaldemand for all inventory items at the requested fulfillment time, aswell as the estimated arrival times per the Just-in-Time inventoryschedules. In addition, in those cases when a customer selects adelivery fulfillment method, network 20 may also take into account thetime it will take for those items to be delivered to a user byautomobile, drone, etc. when determining if the item will be available.For example, if fulfillment of the requested items require items to beretrieved from different merchant locations, network 20 considers thetime it would take for drones, for example, to travel to and fro betweenmerchant locations to fulfill the orders. Nevertheless, once server 22determines the items that are available at the user-selected fulfillmenttime, only those items are displayed to the customer on user computer32. At block 406, the customer then places the grocery item request andthe corresponding data is communicated to server 22 via internet 34. Thegrocery item request may be a bundle or non-bundle request. Thereafter,at block 408, the grocery item request is fulfilled at thecustomer-selected fulfillment time.

There are many advantages to the present disclosure. For example, when auser places a bundle order, he or she is assured the order will befulfilled in its entirety, thus avoiding last minute plan alterations.If the order cannot be fulfilled, the user will be alerted well beforethe fulfillment time. In those methods using a fulfillment time in orderto determine which inventory items to display to the user, the user isassured the items being viewed will be available at their selectedfulfillment time.

Embodiments and methods described herein may combine any one or more ofthe following features: A computer-implemented method to bundle groceryitems remotely ordered by a customer, the method comprising acquiring alist of grocery items from a customer, whereby two or more of thegrocery items have been categorized by the customer as a bundle;acquiring, from the customer, a fulfillment time associated with thebundle; determining whether a merchant location has each grocery item inthe bundle available at the fulfillment time; responsive to adetermination that a defined number of the grocery items in the bundlewill not be available at the fulfillment time, rejecting the bundle; andbefore the fulfillment time, alerting the customer that the bundle hasbeen rejected because the defined number of grocery items in the bundlewill not be available at the fulfillment time.

A computer-implemented method as defined in the previous paragraph,further comprising determining a second fulfillment time in which eachgrocery item in the bundle will be available at the merchant location;communicating the second fulfillment time to the customer; andresponsive to customer acceptance of the second fulfillment time,fulfilling the bundle at the second fulfillment time, wherein thefulfillment time may be a customer pickup or delivery time.

Any of the computer-implemented methods as defined in the previousparagraphs, wherein the customer is alerted at a customer-specifiedalert time. The customer may also select a cutoff time by which thecustomer must be alerted the bundle has been rejected. To determinewhether a merchant location has each grocery item in the bundle, thesystem performs a method comprising determining whether acustomer-specified brand is available at the merchant location; ordetermining whether a customer-specified food category is available atthe merchant location. In other examples, the bundle is a meal bundle.

Any of the computer-implemented method as defined in the previousparagraphs, wherein acquiring the list of grocery items comprisesacquiring one or more substitution items for the bundle. In otherexamples, the list of grocery items includes one or more non-bundleitems; and the method further comprises fulfilling the non-bundle itemsat the fulfillment time. In other examples, the defined number ofgrocery items is less than all items in the bundle.

In another illustrative example, a system described herein may comprisea non-transitory memory; and one or more hardware processors coupled tothe non-transitory memory and configured to read instructions from thenon-transitory memory to cause the system to perform any of theoperations described herein.

In another illustrative example, a method described herein is acomputer-implemented method to bundle grocery items remotely ordered bya customer, the method comprising acquiring a bundle request of groceryitems from a customer; determining a fulfillment time when the bundlewill be available; and communicating the fulfillment time to thecustomer. The bundle request from the customer comprises preferred andsubstitute grocery items. Communicating the fulfillment time comprisescommunicating a first fulfillment time associated with the preferredgrocery items; communicating a second fulfillment time associated withthe substitute grocery items; or communicating a third fulfillment timeassociated with a combination of preferred and substitute grocery items.

In other examples, communicating the fulfillment time comprisescommunicating different fulfillment times for different merchantlocations. The bundle request may comprise a minimum number of groceryitems to be included in the bundle, the minimum number being less thanall items in the bundle.

In yet another example, a method described herein may be acomputer-implemented method to fulfill grocery items remotely ordered bya customer, the method comprising acquiring a grocery item fulfillmenttime selected by a customer; displaying to the customer only thosegrocery items that will be available at the fulfillment time; acquiringa grocery item request from the customer, the grocery item request beingcomprised of grocery items selected from the displayed grocery items;and fulfilling the grocery item request at the fulfillment time.

Moreover, any of the methods described herein may be embodied within asystem comprising processing circuitry to implement any of the methods,or a in a non-transitory computer-readable medium comprisinginstructions which, when executed by at least one processor, causes theprocessor to perform any of the methods described herein.

The foregoing disclosure is not intended to limit the present disclosureto the precise forms or particular fields of use disclosed. As such, itis contemplated that various alternate embodiments and/or modificationsto the present disclosure, whether explicitly described or impliedherein, are possible in light of the disclosure. Having thus describedembodiments of the present disclosure, persons of ordinary skill in theart having the benefit of this disclosure will recognize that changesmay be made in form and detail without departing from the scope of thepresent disclosure. Thus, the present disclosure is limited only by theappended claims.

What is claimed is:
 1. A computer-implemented method to bundle groceryitems remotely ordered by a customer using a graphical user interface,the method comprising: displaying, by a graphical user interface of acustomer computer device, a list of grocery items whereby a customer canselect two or more food items as a meal bundle, wherein the meal bundleincludes data related to a first food item and a second food item thecustomer indicates must be fulfilled together at a fulfillment timeselected using the graphical user interface; transmitting the mealbundle and fulfillment time over a communications network to aprocessor; querying, by the processor, an inventory database of amerchant location to determine whether the merchant location has thefirst and second food items available at the fulfillment time;responsive to a determination, by the processor, that the first andsecond food items in the meal bundle will be available at thefulfillment time, accepting the meal bundle; before the fulfillmenttime, transmitting an electronic alert over the communications networkto the customer computer device to alert the customer the meal bundlehas been accepted because the first and second food items in the mealbundle will be available at the fulfillment time; and delivering themeal bundle to the customer at the fulfillment time, wherein the mealbundle is delivered to the customer at the merchant location or at alocation remote from the merchant location.
 2. The computer-implementedmethod as defined in claim 1, wherein the fulfillment time is a customerpickup or delivery time.
 3. The computer-implemented method as definedin claim 1, wherein determining whether a merchant location has thefirst and second food items comprises: determining whether acustomer-specified food brand is available at the merchant location; ordetermining whether a customer-specified food category is available atthe merchant location.
 4. The computer-implemented method as defined inclaim 1, wherein transmitting the meal bundle over the communicationsnetwork comprises acquiring one or more substitution items for the firstor second food items.
 5. The computer-implemented method as defined inclaim 1, wherein the customer selects, by the graphical user interface,a cutoff time by which the customer must be alerted the meal bundle hasbeen accepted or rejected.
 6. The computer-implemented method as definedin claim 1, wherein delivering the meal bundle to the customercomprises: determining a geo-position of the customer; using thegeo-position to deliver the meal bundle to the customer.
 7. Thecomputer-implemented method as defined in claim 1, wherein: the mealbundle further comprises data related to a customer-specified alert timein which the customer is to be alerted whether the meal bundle will befulfilled; and the customer is alerted on or before thecustomer-specified alert time.
 8. A computer-implemented method tobundle grocery items remotely ordered by a customer using a graphicaluser interface, the method comprising: displaying, by a graphical userinterface of a customer computer device, a list of grocery items wherebya customer can select two or more food items as a meal bundle, whereinthe meal bundle includes data related to a first food item and a secondfood item the customer indicates must be fulfilled together; acquiring,over a communications network, a request for a meal bundle from thecustomer selected using the graphical user interface; querying, by aprocessor, an inventory database of a merchant location to determine afulfillment time at which the first and second food items will beavailable; communicating to the customer, over the communicationsnetwork, the fulfillment time; responsive to customer acceptance of thefulfillment time, scheduling delivery of the meal bundle at thefulfillment time; and delivering the meal bundle to the customer at thefulfillment time.
 9. The computer-implemented method as defined in claim8, wherein the meal bundle is delivered to the customer at the merchantlocation or at a location remote from the merchant location.
 10. Thecomputer-implemented method as defined in claim 8, wherein the mealbundle comprises preferred and substitute grocery items selected by thecustomer using the graphical user interface.
 11. Thecomputer-implemented method as defined in claim 8, wherein communicatingthe fulfillment time to the customer comprises: communicating a firstfulfillment time associated with the preferred grocery items;communicating a second fulfillment time associated with the substitutegrocery items; or communicating a third fulfillment time associated witha combination of preferred and substitute grocery items.
 12. Thecomputer-implemented method as defined in claim 8, wherein communicatingthe fulfillment time to the customer comprises communicating fulfillmenttimes for different merchant locations.
 13. The computer-implementedmethod as defined in claim 8, wherein delivering the meal bundle to thecustomer comprises: determining a geo-position of the customer; usingthe geo-position to deliver the meal bundle to the customer.